package cn.com.twoke.game.client.ui;


import cn.com.twoke.game.client.GameClientManager;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class LoginUI extends BaseUI {

    private static final Integer WIDTH = 500;
    private static final Integer HEIGHT = 300;

    public LoginUI() {
        super("登录");
        Dimension dimension = new Dimension(WIDTH, HEIGHT);
        this.setSize(dimension);
        this.setMinimumSize(dimension);
        this.setMaximumSize(dimension);
        this.setResizable(false);
        this.setLocationRelativeTo(null);
        this.pack();




    }


    @Override
    public JPanel initContent() {
        JPanel contentPanel = new JPanel();
        contentPanel.setLayout(new GridBagLayout());
        // 设置窗口的布局管理器为 GridBagLayout，方便灵活布局组件

        // 创建 GridBagConstraints 对象，用于设置组件在 GridBagLayout 中的约束条件
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.insets = new Insets(10, 10, 10, 10); // 设置组件之间的间隔为 10 像素

        // 创建一个 JLabel 标签，用于显示提示信息
        JLabel label = new JLabel("用户名:");
        // 设置 label 的约束条件
        gbc.gridx = 0;
        gbc.gridy = 0;
        // 将 label 添加到 frame 中
        contentPanel.add(label, gbc);

        // 创建一个 JTextField 输入框
        JTextField textField = new JTextField(20);
        // 设置 textField 的约束条件
        gbc.gridx = 1;
        gbc.gridy = 0;
        // 将 textField 添加到 frame 中
        contentPanel.add(textField, gbc);

        // 创建一个 JButton 按钮
        JButton button = new JButton("确认");
        // 设置 button 的约束条件
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 2; // 让按钮占据两列

        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                GameClientManager.INSTANCE.login(textField.getText());

            }
        });
        // 将 button 添加到 frame 中
        contentPanel.add(button, gbc);

        return contentPanel;
    }
}
